;------------------------------------------------------ ; PROGRAMMA PER LA PROVA TASTIERA .include "jump.inc" .org 0F000h key: call initv ld de,0020h iniz: ld hl,0ec00h in a,(0eah) ; input da tastiera vecchia call keyvis in a,(085h) ; input da tastiera nuova call keyvis in a,(085h) ; input da tastiera nuova complementato cpl call keyvis ld bc,01ffh ; controlla se c'è un tasto premuto sulla tastiera esadecimale push af esad: pop af in a,(0f0h) ; fa 255 input. Quello che è il bin 7 a 0 è il tasto premuto (a causa del contatore hardware che fa lo scan dei tasti) push af bit 7,a jr z,esad1 ; tasto premuto sulla tastiera esadecimale dec bc ld a,b or c jr nz,esad esad1: pop af call keyvis jr iniz keyvis: call key1 ; visualizza il dato come arriva da tastiera add hl,de ; si posiziona sulla riga successiva and 7fh ; visualizza il dato con lo strobe a 0 call key1 add hl,de ; si posiziona due righe dopo add hl,de ret key1: push hl push af push af loop: pop af rlca jr c,uno call waitv ld (hl),'0' jr cont uno: call waitv ld (hl),'1' cont: push af inc hl ld a,l and 0fh cp 08h jr nz,loop pop af call sep ; separatore pop af ; visualizza il byte push af rra rra rra rra and 0fh call lett ; somma l'offset per l'ASCII del numero o della lettera call waitv ld (hl),a inc hl pop af push af and 0fh call lett call waitv ld (hl),a call sep ; separatore pop af ; visualizza il carattere ASCII call waitv ld (hl),a pop hl ret sep: inc hl ; separatore inc hl call waitv ld (hl),'-' inc hl inc hl ret lett: cp 0Ah jr c,lett1 ; salta se minore add a,55 ret lett1: add a,'0' ret .org 0F7FFh .byte 00h .end